﻿using System;
using System.Data;
using System.Collections;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using NHibernate;
using NHibernate.Cfg;
using System.Text.RegularExpressions;
using System.Web;


    public partial class MasterPage2 : System.Web.UI.Page

    {
  
        /// <summary>
        /// Procedimiento que trae la cedula de la persona a modificar desde BuscarEmpleado, busca en la BD
        /// todos los demas atribitos de la persona con esa cedula y los carga en pantalla
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            //setCampos("desactivar");
            //iniciarUI();
            if (Page.PreviousPage != null)
            {
                ui_btnGuardarCambio.Enabled = (true);
                ListBox ListaEmpleados = PreviousPage.getCedula;

                char[] delimiterChars = { ':', ',' };
                try
                {
                    int seleccionado = ListaEmpleados.GetSelectedIndices()[0];
                    String texto = ListaEmpleados.Items[seleccionado].Text;
                    string[] palabras = texto.Split(delimiterChars);
                    //ui_hdfCedula.Value = palabras[1];
                    //ui_txtCedula.Text = palabras[1];

                    EmpleadoControl empleadoControl = new EmpleadoControl();
                    IList empleados = null;
                    empleados = empleadoControl.Buscar(palabras[1]);

                    foreach (Empleado empleadoGuardado in empleados)
                    {
                        if (empleadoGuardado.Cedula.ToString() == palabras[1])
                        {
                            ui_hdfIdEmpleado.Value = empleadoGuardado.Id.ToString();
                            ui_txtCedula.Text = empleadoGuardado.Cedula;
                            ui_txtNombre.Text = empleadoGuardado.Nombre;
                            ui_txtApellido.Text = empleadoGuardado.Apellido;
                            ui_txtNumeroCuenta.Text = empleadoGuardado.NumeroCuenta;
                            ui_txtSueldo.Text = empleadoGuardado.Sueldo.ToString();
                            ui_txtTipoCuenta.Text = empleadoGuardado.TipoCuenta;
                            //ui_txtStatus.Text = empleadoGuardado.Status.ToString();
                            ui_txtBono.Text = empleadoGuardado.Bono.ToString();

                        }

                    }

                }
                catch (IndexOutOfRangeException ex)
                {
                    Response.Write("<script language=javascript>alert('Primero debe seleccionar un elemento a modificar de la lista .');</script>");
                }
            }
            else
            {
                //iniciarUI();
                ui_btnGuardarCambio.Enabled=(false);
            }


            }
        /// <summary>
        /// Activa o desactiva los campos del formulario segun se indique por medio de la variable "flag"
        /// </summary>
        /// <param name="flag"></param>
        private void setCampos(String flag)
        {
            Boolean accion = false;
            if (flag == "activar")
            {

                accion = true;
 
            }
            ui_txtCedula.Enabled = accion;
            ui_txtNombre.Enabled = accion;
            ui_txtApellido.Enabled = accion;
            ui_txtNumeroCuenta.Enabled = accion;
            ui_txtSueldo.Enabled = accion;
            ui_txtTipoCuenta.Enabled = accion;
            ui_txtBono.Enabled = accion; 

        }

        /// <summary>
        /// Funcion que recibe la cedula de la pantalla buscar empleado
        /// </summary>
        /// <param name="cedula"></param>

        /// <summary>
        /// Inicializa la UI
        /// </summary>
        private void iniciarUI()
        {
            ui_txtCedula.Text = "";
            ui_txtNombre.Text = "";
            ui_txtApellido.Text = "";
            ui_txtNumeroCuenta.Text = "";
            ui_txtSueldo.Text = "";
            ui_txtTipoCuenta.Text = "";
            ui_txtBono.Text = "";
            setCampos("desactivar");
        }
   
        /// <summary>
        /// Funcion que guarda los cambios realizados al empleado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ui_btnGuardarCambio_Click(object sender, EventArgs e)
        {

            if (ui_txtCedula.Text == "" || ui_txtNombre.Text == "" || ui_txtApellido.Text == "" ||
                ui_txtNumeroCuenta.Text == "" || ui_txtSueldo.Text == "" || ui_txtTipoCuenta.Text == "")
            {
                Response.Write("<script language=javascript>alert('Los campos obligatorios (*) no pueden estar vacios');</script>");

            }
            else
            {
                Empleado empleado = new Empleado();
                empleado.Id = int.Parse(ui_hdfIdEmpleado.Value);
                empleado.Cedula = ui_txtCedula.Text;
                empleado.Nombre = ui_txtNombre.Text;
                empleado.Apellido = ui_txtApellido.Text;
                empleado.NumeroCuenta = ui_txtNumeroCuenta.Text;
                empleado.Sueldo = float.Parse(String.Format("{0:0.00}", ui_txtSueldo.Text.Trim()));
                empleado.TipoCuenta = ui_txtTipoCuenta.Text;
                //empleado.Status = int.Parse(ui_txtStatus.Text);
                empleado.Bono = float.Parse(String.Format("{0:0.00}", ui_txtBono.Text.Trim()));
                EmpleadoControl empleadoControl = new EmpleadoControl();
                Boolean resultadoOperacion = empleadoControl.Modificar(empleado);
                if (resultadoOperacion == true)
                {

                    Response.Write("<script language=javascript>alert('Se ha modificado exitosamente el registro');</script>");
                    iniciarUI();

                }
                else
                {
                    Response.Write("<script language=javascript>alert('ERROR: no se ha podido modificar el registro');</script>");
                }

            }

        }
}


